package modelo.dao.implementacion;

import java.sql.ResultSet;
import java.util.ArrayList;

import modelo.dao.PlatosDAO;
import modelo.transfer.Plato;
import modelo.transfer.TipoDePlato;

public class Platos implements PlatosDAO {

	@Override
	public void agregarPlato(int idMesa, int idPlato) {		
		
		String sql = "INSERT INTO mesaplato (`id_mesa`, `id_plato`) "
				+ "VALUES ('" + idMesa + "','" +
				idPlato + "')";

		try {
			ConectorBBDD.iniciarConexion();
			ResultSet rs = ConectorBBDD.realizarConsulta(true, sql);			
			ConectorBBDD.cerrarConexion();			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

	@Override
	public ArrayList<Plato> verPlatosMesa(int idMesa){
		String sql = "SELECT * FROM mesaplato WHERE id_mesa="+idMesa;
		ArrayList<Plato> platos = new ArrayList<Plato>();
		
		try {
			ConectorBBDD.iniciarConexion();
			ResultSet rs = ConectorBBDD.realizarConsulta(false, sql);	
			
			while (rs.next()){
				Plato p = new Plato(TipoDePlato.getTipo(rs.getString("tipo")), 
						rs.getFloat("precio"), 
						rs.getInt("id_plato"), 
						rs.getString("nombre"), 
						null);
				platos.add(p);
			}

			ConectorBBDD.cerrarConexion();
			return platos;
			
		} catch (Exception e) {
			e.printStackTrace();
		}		
		
		return null;
	}
	


	@Override
	public ArrayList<Plato> modificarPlato(int idMesa, int idPlato, int nuevoIdPlato) {
		String sql = "UPDATE `mesaplato` SET"+
				" `id_plato`= '"+nuevoIdPlato+
				"' WHERE id_mesa="+idMesa+" AND id_plato="+idPlato;
		
		try {
			ConectorBBDD.iniciarConexion();
			ResultSet rs = ConectorBBDD.realizarConsulta(true, sql);			
			ConectorBBDD.cerrarConexion();			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return null;
	}

	@Override
	public ArrayList<Plato> eliminarPlato(int idMesa, int idPlato) {
		String sql = "DELETE FROM `mesaplato` WHERE id_mesa="+idMesa+" AND id_plato="+idPlato;
		
		try {
			ConectorBBDD.iniciarConexion();
			ResultSet rs = ConectorBBDD.realizarConsulta(true, sql);			
			ConectorBBDD.cerrarConexion();			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return null;
	}

	@Override
	public Plato agregarComentarioPlato(int idMesa, int idPlato, String comentario) {
		String sql = "INSERT INTO mesaplato (`comentario`) "
				+ "VALUES ('" + comentario + "') "
				+ "WHERE id_mesa="+idMesa+" AND id_plato="+idPlato;

		try {
			ConectorBBDD.iniciarConexion();
			ResultSet rs = ConectorBBDD.realizarConsulta(true, sql);			
			ConectorBBDD.cerrarConexion();			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public Plato eliminarComentarioPlato(int idMesa, int idPlato) {
		String sql = "DELETE FROM mesaplato WHERE id_mesa="+idMesa+" AND id_plato="+idPlato;		
		ResultSet rs = null;
		try {
			ConectorBBDD.iniciarConexion();
			rs = ConectorBBDD.realizarConsulta(true, sql);			
			ConectorBBDD.cerrarConexion();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	// DEPRECADOS
	
	@Override
	public void verPlatos(int idMesa) { }	
	
}
